package com.senlingspace.system.service;

import java.util.List;

import com.github.pagehelper.PageInfo;
import com.senlingspace.common.core.domain.AjaxResult;
import com.senlingspace.system.domain.SlkjTicketCategory;
import com.senlingspace.system.domain.vo.SlkjTicketCategoryVo;

/**
 * 票类管理Service接口
 *
 * @author SenlingSpace
 * @date 2024-07-03
 */
public interface ISlkjTicketCategoryService {
    /**
     * 查询票类管理
     *
     * @param id 票类管理主键
     * @return 票类管理
     */
    public SlkjTicketCategory selectSlkjTicketCategoryById(Long id);

    /**
     * 查询票类管理列表
     *
     * @param slkjTicketCategory 票类管理
     * @param paginate           是否需要分页
     * @return 票类管理集合
     */
    public PageInfo<SlkjTicketCategoryVo> selectSlkjTicketCategoryList(SlkjTicketCategory slkjTicketCategory, boolean paginate);

    /**
     * 新增票类管理
     *
     * @param slkjTicketCategory 票类管理
     * @return 结果
     */
    public int insertSlkjTicketCategory(SlkjTicketCategory slkjTicketCategory);

    /**
     * 修改票类管理
     *
     * @param slkjTicketCategory 票类管理
     * @return 结果
     */
    public int updateSlkjTicketCategory(SlkjTicketCategory slkjTicketCategory);

    /**
     * 批量删除票类管理
     *
     * @param ids    需要删除的票类管理主键集合
     * @param userId 操作人ID
     * @return 结果
     */
    public AjaxResult deleteSlkjTicketCategoryByIds(Long[] ids, Long userId);

    /**
     * 删除票类管理信息
     *
     * @param id 票类管理主键
     * @return 结果
     */
    public int deleteSlkjTicketCategoryById(Long id);

    /**
     * 根据ID查询票类管理
     *
     * @param categoryIds
     * @return {@link List }<{@link SlkjTicketCategory }>
     */
    List<SlkjTicketCategory> selectSlkjTicketCategoryByIds(List<Long> categoryIds);

}
